# -*- coding: UTF-8 -*-
"""
@File    ：案例1.py
@Author  ：techPang
@Date    ：2025/2/8 15:27 
@Version ：1.0
单词统计
"""
from pyspark import SparkContext, SparkConf
# 1.构建执行环境入口对象
conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)
# 2.读取数据文件
rdd = sc.textFile("./hello.txt")
# 3.取出全部单词
word_rdd = rdd.flatMap(lambda word: word.split(" "))
# print(word_rdd.collect())
# 4.将所有单词都转成二元元组，单词为key，value设置为1
word_with_one_rdd = word_rdd.map(lambda word: (word, 1))
# 5. 分组并求和
rdd_reduced = word_with_one_rdd.reduceByKey(lambda x, y: x + y)

# 排序，根据元组中第二个数值排序
rdd_sort = rdd_reduced.sortBy(lambda x: x[1], ascending=False, numPartitions=1)

# 6.打印输出结果
print(rdd_reduced.collect())
print(rdd_sort.collect())

# 停止运行
sc.stop()
